package com.punch.course.service.impl;

import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.punch.course.mapper.CourseExtendMapper;
import com.punch.course.model.CourseExtend;
import com.punch.course.service.CourseExtendService;
import org.springframework.stereotype.Service;

/**
 * <p>
 * 课程扩展表 服务实现类
 * </p>
 *
 * @author wjj
 * @since 2020-12-01
 */
@Service
public class CourseExtendServiceImpl extends ServiceImpl<CourseExtendMapper, CourseExtend> implements CourseExtendService {

    @Override
    public void saveCourseExtend(Long courseId, String courseSiteRequirements, String courseIntroduce) {
        CourseExtend courseExtend = setCourseExtend(courseId, courseSiteRequirements, courseIntroduce);
        courseExtend.setCourseId(courseId);
        save(courseExtend);
        courseExtend = null;
    }

    @Override
    public void updateCourseExtend(Long courseId, String courseSiteRequirements, String courseIntroduce) {

        CourseExtend courseExtend = setCourseExtend(courseId, courseSiteRequirements, courseIntroduce);
        QueryWrapper<CourseExtend> queryWrapper = new QueryWrapper<>();
        queryWrapper.lambda().eq(CourseExtend::getCourseId, courseId);
        CourseExtend courseExtendEX = getOne(queryWrapper);
        //如果不存在则新增
        if (courseExtendEX == null) {
            courseExtend.setCourseId(courseId);
            save(courseExtend);
        } else {
            UpdateWrapper<CourseExtend> updateWrapper = new UpdateWrapper<>();
            updateWrapper.lambda().eq(CourseExtend::getCourseId, courseId);
            update(courseExtend, updateWrapper);
            updateWrapper = null;
        }
        courseExtend = null;
    }

    private CourseExtend setCourseExtend(Long courseId, String courseSiteRequirements, String courseIntroduce) {
        CourseExtend courseExtend = new CourseExtend();
        //介绍
        if (StrUtil.isEmpty(courseIntroduce)) {
            courseExtend.setCourseIntroduce("");
        } else {
            courseExtend.setCourseIntroduce(courseIntroduce);
        }
        //场地要求
        if (StrUtil.isEmpty(courseSiteRequirements)) {
            courseExtend.setCourseSiteRequirements("");
        } else {
            courseExtend.setCourseSiteRequirements(courseSiteRequirements);
        }
        courseExtend.setCourseId(courseId);
        return courseExtend;
    }
}
